# _*_ utf-8 _*_
# 了解选择排序法的原理与实现
import random
""""
    选择排序的原理：
        1、基本思想是：遍历列表找到最小元素，将最小元素放在列表的前面，然后继续进行遍历
        2、实现：
            1、循环遍历列表长度-1
            2、记录最小值元素的下标
            3、从当前元素开始遍历整个列表，找到最小元素，并记录下来最小值元素的下标
            4、将最小值与当前位置元素进行交换
            5、重复上面的操作，使列表变为有序的

"""
lst = [random.randint(1, 100) for i in range(20)]
print("排序前：", lst)

for i in range(len(lst) - 1):                           # 选择排序的最后一个元素不需要进行比较，所以循环的轮数为列表长度-1
    min_index = i                                       # 假设最小值下标为第i个元素，第i个元素之前的元素列表为有序列表
    for j in range(i + 1, len(lst)):                    # 从当前位置+1的位置往后，找到最小元素下标
        if lst[j] < lst[min_index]:
            min_index = j
    lst[i], lst[min_index] = lst[min_index], lst[i]     # 将最小元素与当前元素进行交换
print("排序后：", lst)


